home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / kcl / kcl.lha / cmpnew / cmpmulti.c < prev    next >
C/C++ Source or Header  |  1987-06-04  |  17KB  |  718 lines

  1.  
  2. /* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
  3. #include <cmpinclude.h>
  4. #include "cmpmulti.h"
  5. init_cmpmulti(start,size,data)char *start;int size;object data;
  6. {    register object *base=vs_top;register object *sup=base+VM2;vs_top=sup;vs_check;
  7.     Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
  8.     (void)(putprop(VV[0],VV[1],VV[2]));
  9.     (void)(putprop(VV[0],VV[3],VV[4]));
  10.     (void)(putprop(VV[5],VV[6],VV[2]));
  11.     (void)(putprop(VV[5],VV[7],VV[4]));
  12.     (void)(putprop(VV[8],VV[9],VV[10]));
  13.     (void)(putprop(VV[8],VV[11],VV[4]));
  14.     (void)(putprop(VV[12],VV[13],VV[10]));
  15.     (void)(putprop(VV[12],VV[14],VV[4]));
  16.     (void)(putprop(VV[15],VV[16],VV[10]));
  17.     (void)(putprop(VV[15],VV[17],VV[4]));
  18.     MF(VV[1],L11,start,size,data);
  19.     MF(VV[3],L12,start,size,data);
  20.     MF(VV[6],L13,start,size,data);
  21.     MF(VV[7],L14,start,size,data);
  22.     MF(VV[9],L15,start,size,data);
  23.     MF(VV[11],L16,start,size,data);
  24.     MF(VV[13],L17,start,size,data);
  25.     MF(VV[14],L18,start,size,data);
  26.     MF(VV[16],L19,start,size,data);
  27.     MF(VV[17],L20,start,size,data);
  28.     vs_top=vs_base=base;
  29. }
  30. /*    function definition for C1MULTIPLE-VALUE-CALL    */
  31.  
  32. static L11()
  33. {    register object *base=vs_base;
  34.     register object *sup=base+VM3;
  35.     vs_reserve(VM3);
  36.     check_arg(1);
  37.     vs_top=sup;
  38. TTL:;
  39.     base[1]= Cnil;
  40.     base[2]= Cnil;
  41.     if(!(endp(base[0]))){
  42.     goto T11;}
  43.     base[3]= VV[0];
  44.     base[4]= VV[18];
  45.     base[5]= VV[19];
  46.     (void)simple_symlispcall_no_event(VV[43],base+3,3);
  47. T11:;
  48.     if(!(endp(cdr(base[0])))){
  49.     goto T18;}
  50.     base[3]= base[0];
  51.     symlispcall_no_event(VV[44],base+3,1);
  52.     return;
  53. T18:;
  54.     base[3]= car(base[0]);
  55.     base[2]= simple_symlispcall_no_event(VV[45],base+3,1);
  56.     base[3]= cadr(base[2]);
  57.     base[1]= simple_symlispcall_no_event(VV[46],base+3,1);
  58.     base[3]= cdr(base[0]);
  59.     base[4]= base[1];
  60.     base[0]= simple_symlispcall_no_event(VV[47],base+3,2);
  61.     base[3]= list(4,VV[0],base[1],base[2],base[0]);
  62.     vs_top=(vs_base=base+3)+1;
  63.     return;
  64. }
  65. /*    function definition for C2MULTIPLE-VALUE-CALL    */
  66.  
  67. static L12()
  68. {    register object *base=vs_base;
  69.     register object *sup=base+VM4;
  70.     vs_reserve(VM4);
  71.     bds_check;
  72.     check_arg(2);
  73.     vs_top=sup;
  74. TTL:;
  75.     bds_bind(VV[20],symbol_value(VV[20]));
  76.     base[3]= Cnil;
  77.     base[4]= Cnil;
  78.     if(!(endp(cdr(base[1])))){
  79.     goto T32;}
  80.     base[5]= base[0];
  81.     base[3]= simple_symlispcall_no_event(VV[48],base+5,1);
  82.     bds_bind(VV[21],VV[22]);
  83.     base[6]= car(base[1]);
  84.     base[7]= simple_symlispcall_no_event(VV[49],base+6,1);
  85.     bds_unwind1;
  86.     base[5]= base[0];
  87.     base[6]= VV[23];
  88.     base[7]= base[3];
  89.     symlispcall_no_event(VV[50],base+5,3);
  90.     bds_unwind1;
  91.     return;
  92. T32:;
  93.     setq(VV[24],number_plus(symbol_value(VV[24]),VV[18]));
  94.     base[4]= symbol_value(VV[24]);
  95.     base[5]= base[0];
  96.     base[3]= simple_symlispcall_no_event(VV[48],base+5,1);
  97.     princ_str("\n    {object *V",VV[25]);
  98.     base[5]= base[4];
  99.     (void)simple_symlispcall_no_event(VV[51],base+5,1);
  100.     princ_str("=base+",VV[25]);
  101.     base[5]= (VV[20]->s.s_dbind);
  102.     (void)simple_symlispcall_no_event(VV[51],base+5,1);
  103.     princ_char(59,VV[25]);
  104.     setq(VV[26],Ct);
  105.     {object V1;
  106.     object V2;
  107.     V1= base[1];
  108.     V2= car((V1));
  109. T62:;
  110.     if(!(endp((V1)))){
  111.     goto T63;}
  112.     goto T58;
  113. T63:;
  114.     bds_bind(VV[21],VV[22]);
  115.     base[6]= (V2);
  116.     base[7]= base[4];
  117.     base[8]= simple_symlispcall_no_event(VV[52],base+6,2);
  118.     bds_unwind1;
  119.     princ_str("\n    while(vs_base<vs_top)",VV[25]);
  120.     princ_str("\n    {V",VV[25]);
  121.     base[5]= base[4];
  122.     (void)simple_symlispcall_no_event(VV[51],base+5,1);
  123.     princ_str("[0]=vs_base[0];V",VV[25]);
  124.     base[5]= base[4];
  125.     (void)simple_symlispcall_no_event(VV[51],base+5,1);
  126.     princ_str("++;vs_base++;}",VV[25]);
  127.     V1= cdr((V1));
  128.     V2= car((V1));
  129.     goto T62;}
  130. T58:;
  131.     princ_str("\n    vs_base=base+",VV[25]);
  132.     base[5]= (VV[20]->s.s_dbind);
  133.     (void)simple_symlispcall_no_event(VV[51],base+5,1);
  134.     princ_str(";vs_top=V",VV[25]);
  135.     base[5]= base[4];
  136.     (void)simple_symlispcall_no_event(VV[51],base+5,1);
  137.     princ_char(59,VV[25]);
  138.     setq(VV[26],Ct);
  139.     base[5]= base[0];
  140.     base[6]= VV[23];
  141.     base[7]= base[3];
  142.     (void)simple_symlispcall_no_event(VV[50],base+5,3);
  143.     princ_char(125,VV[25]);
  144.     base[5]= Cnil;
  145.     vs_top=(vs_base=base+5)+1;
  146.     bds_unwind1;
  147.     return;
  148. }
  149. /*    function definition for C1MULTIPLE-VALUE-PROG1    */
  150.  
  151. static L13()
  152. {    register object *base=vs_base;
  153.     register object *sup=base+VM5;
  154.     vs_reserve(VM5);
  155.     check_arg(1);
  156.     vs_top=sup;
  157. TTL:;
  158.     base[1]= simple_symlispcall_no_event(VV[53],base+2,0);
  159.     base[2]= Cnil;
  160.     if(!(endp(base[0]))){
  161.     goto T101;}
  162.     base[3]= VV[5];
  163.     base[4]= VV[18];
  164.     base[5]= VV[19];
  165.     (void)simple_symlispcall_no_event(VV[43],base+3,3);
  166. T101:;
  167.     base[3]= car(base[0]);
  168.     base[4]= base[1];
  169.     base[2]= simple_symlispcall_no_event(VV[54],base+3,2);
  170.     base[3]= cdr(base[0]);
  171.     base[4]= base[1];
  172.     base[0]= simple_symlispcall_no_event(VV[47],base+3,2);
  173.     base[3]= list(4,VV[5],base[1],base[2],base[0]);
  174.     vs_top=(vs_base=base+3)+1;
  175.     return;
  176. }
  177. /*    function definition for C2MULTIPLE-VALUE-PROG1    */
  178.  
  179. static L14()
  180. {    register object *base=vs_base;
  181.     register object *sup=base+VM6;
  182.     vs_reserve(VM6);
  183.     bds_check;
  184.     check_arg(2);
  185.     vs_top=sup;
  186. TTL:;
  187.     setq(VV[24],number_plus(symbol_value(VV[24]),VV[18]));
  188.     base[2]= symbol_value(VV[24]);
  189.     setq(VV[24],number_plus(symbol_value(VV[24]),VV[18]));
  190.     base[3]= symbol_value(VV[24]);
  191.     bds_bind(VV[21],VV[22]);
  192.     base[5]= base[0];
  193.     base[6]= simple_symlispcall_no_event(VV[49],base+5,1);
  194.     bds_unwind1;
  195.     princ_str("\n    {object *V",VV[25]);
  196.     base[4]= base[3];
  197.     (void)simple_symlispcall_no_event(VV[51],base+4,1);
  198.     princ_str("=vs_top;object *V",VV[25]);
  199.     base[4]= base[2];
  200.     (void)simple_symlispcall_no_event(VV[51],base+4,1);
  201.     princ_str("=vs_base;",VV[25]);
  202.     {object V3;
  203.     object V4;
  204.     V3= base[1];
  205.     V4= car((V3));
  206. T133:;
  207.     if(!(endp((V3)))){
  208.     goto T134;}
  209.     goto T129;
  210. T134:;
  211.     bds_bind(VV[21],VV[27]);
  212.     base[5]= (V4);
  213.     base[6]= base[3];
  214.     base[7]= simple_symlispcall_no_event(VV[52],base+5,2);
  215.     bds_unwind1;
  216.     V3= cdr((V3));
  217.     V4= car((V3));
  218.     goto T133;}
  219. T129:;
  220.     princ_str("\n    vs_base=V",VV[25]);
  221.     base[4]= base[2];
  222.     (void)simple_symlispcall_no_event(VV[51],base+4,1);
  223.     princ_str(";vs_top=V",VV[25]);
  224.     base[4]= base[3];
  225.     (void)simple_symlispcall_no_event(VV[51],base+4,1);
  226.     princ_str(";}",VV[25]);
  227.     base[4]= VV[28];
  228.     symlispcall_no_event(VV[55],base+4,1);
  229.     return;
  230. }
  231. /*    function definition for C1VALUES    */
  232.  
  233. static L15()
  234. {    register object *base=vs_base;
  235.     register object *sup=base+VM7;
  236.     vs_reserve(VM7);
  237.     check_arg(1);
  238.     vs_top=sup;
  239. TTL:;
  240.     base[1]= simple_symlispcall_no_event(VV[53],base+2,0);
  241.     base[2]= base[0];
  242.     base[3]= base[1];
  243.     base[0]= simple_symlispcall_no_event(VV[47],base+2,2);
  244.     base[2]= list(3,VV[8],base[1],base[0]);
  245.     vs_top=(vs_base=base+2)+1;
  246.     return;
  247. }
  248. /*    function definition for C2VALUES    */
  249.  
  250. static L16()
  251. {    register object *base=vs_base;
  252.     register object *sup=base+VM8;
  253.     vs_reserve(VM8);
  254.     bds_check;
  255.     check_arg(1);
  256.     vs_top=sup;
  257. TTL:;
  258.     base[1]= symbol_value(VV[20]);
  259.     bds_bind(VV[20],symbol_value(VV[20]));
  260.     if((base[0])!=Cnil){
  261.     goto T162;}
  262.     princ_str("\n    vs_base=vs_top=base+",VV[25]);
  263.     base[3]= base[1];
  264.     (void)simple_symlispcall_no_event(VV[51],base+3,1);
  265.     princ_char(59,VV[25]);
  266.     setq(VV[26],Ct);
  267.     princ_str("\n    vs_base[0]=Cnil;",VV[25]);
  268.     goto T160;
  269. T162:;
  270.     {object V5;
  271.     object V6;
  272.     V5= base[0];
  273.     V6= car((V5));
  274. T176:;
  275.     if(!(endp((V5)))){
  276.     goto T177;}
  277.     goto T172;
  278. T177:;
  279.     base[4]= simple_symlispcall_no_event(VV[56],base+5,0);
  280.     base[3]= list(2,VV[29],base[4]);
  281.     bds_bind(VV[21],base[3]);
  282.     base[4]= (V6);
  283.     base[5]= simple_symlispcall_no_event(VV[49],base+4,1);
  284.     bds_unwind1;
  285.     V5= cdr((V5));
  286.     V6= car((V5));
  287.     goto T176;}
  288. T172:;
  289.     princ_str("\n    vs_top=(vs_base=base+",VV[25]);
  290.     base[3]= base[1];
  291.     (void)simple_symlispcall_no_event(VV[51],base+3,1);
  292.     princ_str(")+",VV[25]);
  293.     base[3]= number_minus((VV[20]->s.s_dbind),base[1]);
  294.     (void)simple_symlispcall_no_event(VV[51],base+3,1);
  295.     princ_char(59,VV[25]);
  296.     setq(VV[26],Ct);
  297. T160:;
  298.     base[3]= VV[28];
  299.     symlispcall_no_event(VV[55],base+3,1);
  300.     bds_unwind1;
  301.     return;
  302. }
  303. /*    function definition for C1MULTIPLE-VALUE-SETQ    */
  304.  
  305. static L17()
  306. {    register object *base=vs_base;
  307.     register object *sup=base+VM9;
  308.     vs_reserve(VM9);
  309.     check_arg(1);
  310.     vs_top=sup;
  311. TTL:;
  312.     base[1]= simple_symlispcall_no_event(VV[53],base+2,0);
  313.     base[2]= Cnil;
  314.     if(endp(base[0])){
  315.     goto T202;}
  316.     if(!(endp(cdr(base[0])))){
  317.     goto T201;}
  318. T202:;
  319.     base[3]= VV[12];
  320.     base[4]= VV[30];
  321.     base[5]= VV[19];
  322.     (void)simple_symlispcall_no_event(VV[43],base+3,3);
  323. T201:;
  324.     if(endp(cddr(base[0]))){
  325.     goto T209;}
  326.     base[3]= VV[12];
  327.     base[4]= VV[30];
  328.     base[5]= make_fixnum(length(base[0]));
  329.     (void)simple_symlispcall_no_event(VV[57],base+3,3);
  330. T209:;
  331.     base[3]= car(base[0]);
  332.     base[4]= car(base[3]);
  333. T219:;
  334.     if(!(endp(base[3]))){
  335.     goto T220;}
  336.     goto T215;
  337. T220:;
  338.     if(type_of(base[4])==t_symbol){
  339.     goto T224;}
  340.     base[5]= VV[31];
  341.     base[6]= base[4];
  342.     (void)simple_symlispcall_no_event(VV[58],base+5,2);
  343. T224:;
  344.     base[5]= base[4];
  345.     vs_top=(vs_base=base+5)+1;
  346.     Lconstantp();
  347.     vs_top=sup;
  348.     if((vs_base[0])==Cnil){
  349.     goto T229;}
  350.     base[5]= VV[32];
  351.     base[6]= base[4];
  352.     (void)simple_symlispcall_no_event(VV[58],base+5,2);
  353. T229:;
  354.     base[5]= base[4];
  355.     base[4]= simple_symlispcall_no_event(VV[59],base+5,1);
  356.     base[2]= make_cons(base[4],base[2]);
  357.     base[5]= make_cons(car(base[4]),structure_ref(base[1],VV[33],0));
  358.     structure_set(base[1],VV[33],0,base[5]);
  359.     base[3]= cdr(base[3]);
  360.     base[4]= car(base[3]);
  361.     goto T219;
  362. T215:;
  363.     base[3]= reverse(base[2]);
  364.     base[5]= cadr(base[0]);
  365.     base[6]= base[1];
  366.     base[4]= simple_symlispcall_no_event(VV[54],base+5,2);
  367.     base[5]= list(4,VV[12],base[1],base[3],base[4]);
  368.     vs_top=(vs_base=base+5)+1;
  369.     return;
  370. }
  371. /*    function definition for C2MULTIPLE-VALUE-SETQ    */
  372.  
  373. static L18()
  374. {    register object *base=vs_base;
  375.     register object *sup=base+VM10;
  376.     vs_reserve(VM10);
  377.     bds_check;
  378.     check_arg(2);
  379.     vs_top=sup;
  380. TTL:;
  381.     bds_bind(VV[21],VV[22]);
  382.     base[3]= base[1];
  383.     base[4]= simple_symlispcall_no_event(VV[49],base+3,1);
  384.     bds_unwind1;
  385.     {object V7;
  386.     V7= base[0];
  387. T255:;
  388.     if(!(endp((V7)))){
  389.     goto T256;}
  390.     goto T252;
  391. T256:;
  392.     {object V8;
  393.     V8= car((V7));
  394.     princ_str("\n    if(vs_base<vs_top){",VV[25]);
  395.     base[2]= VV[28];
  396.     base[3]= car((V8));
  397.     base[4]= cadr((V8));
  398.     (void)simple_symlispcall_no_event(VV[60],base+2,3);
  399.     if(endp(cdr((V7)))){
  400.     goto T268;}
  401.     princ_str("\n    vs_base++;",VV[25]);
  402. T268:;
  403.     princ_str("\n    }else{",VV[25]);
  404.     base[2]= Cnil;
  405.     base[3]= car((V8));
  406.     base[4]= cadr((V8));
  407.     (void)simple_symlispcall_no_event(VV[60],base+2,3);
  408.     princ_char(125,VV[25]);}
  409.     V7= cdr((V7));
  410.     goto T255;}
  411. T252:;
  412.     if((base[0])!=Cnil){
  413.     goto T283;}
  414.     princ_str("\n    if(vs_base=vs_top){vs_base[0]=Cnil;vs_top=vs_base+1;}",VV[25]);
  415.     base[2]= VV[28];
  416.     symlispcall_no_event(VV[55],base+2,1);
  417.     return;
  418. T283:;
  419.     if(symbol_value(VV[34])==VV[35]){
  420.     goto T288;}
  421.     princ_str("\n    ",VV[25]);
  422.     (void)simple_symlispcall_no_event(VV[61],base+2,0);
  423. T288:;
  424.     base[2]= make_cons(VV[36],car(base[0]));
  425.     symlispcall_no_event(VV[55],base+2,1);
  426.     return;
  427. }
  428. /*    function definition for C1MULTIPLE-VALUE-BIND    */
  429.  
  430. static L19()
  431. {    register object *base=vs_base;
  432.     register object *sup=base+VM11;
  433.     vs_reserve(VM11);
  434.     bds_check;
  435.     check_arg(1);
  436.     vs_top=sup;
  437. TTL:;
  438.     base[1]= simple_symlispcall_no_event(VV[53],base+2,0);
  439.     base[2]= Cnil;
  440.     base[3]= Cnil;
  441.     base[4]= Cnil;
  442.     base[5]= Cnil;
  443.     base[6]= Cnil;
  444.     base[7]= Cnil;
  445.     base[8]= Cnil;
  446.     base[9]= Cnil;
  447.     bds_bind(VV[37],symbol_value(VV[37]));
  448.     if(endp(base[0])){
  449.     goto T295;}
  450.     if(!(endp(cdr(base[0])))){
  451.     goto T294;}
  452. T295:;
  453.     base[11]= VV[15];
  454.     base[12]= VV[30];
  455.     base[13]= make_fixnum(length(base[0]));
  456.     (void)simple_symlispcall_no_event(VV[43],base+11,3);
  457. T294:;
  458.     base[11]= cddr(base[0]);
  459.     base[12]= Cnil;
  460.     symlispcall_no_event(VV[62],base+11,2);
  461.     if(vs_base<vs_top){
  462.     base[8]= vs_base[0];
  463.     vs_base++;
  464.     }else{
  465.     base[8]= Cnil;}
  466.     if(vs_base<vs_top){
  467.     base[5]= vs_base[0];
  468.     vs_base++;
  469.     }else{
  470.     base[5]= Cnil;}
  471.     if(vs_base<vs_top){
  472.     base[7]= vs_base[0];
  473.     vs_base++;
  474.     }else{
  475.     base[7]= Cnil;}
  476.     if(vs_base<vs_top){
  477.     base[6]= vs_base[0];
  478.     vs_base++;
  479.     }else{
  480.     base[6]= Cnil;}
  481.     if(vs_base<vs_top){
  482.     base[9]= vs_base[0];
  483.     }else{
  484.     base[9]= Cnil;}
  485.     vs_top=sup;
  486.     base[11]= base[5];
  487.     (void)simple_symlispcall_no_event(VV[63],base+11,1);
  488.     {object V9;
  489.     object V10;
  490.     V9= car(base[0]);
  491.     V10= car((V9));
  492. T312:;
  493.     if(!(endp((V9)))){
  494.     goto T313;}
  495.     goto T308;
  496. T313:;
  497.     base[12]= (V10);
  498.     base[13]= base[5];
  499.     base[14]= base[6];
  500.     base[15]= base[7];
  501.     base[11]= simple_symlispcall_no_event(VV[64],base+12,4);
  502.     base[3]= make_cons((V10),base[3]);
  503.     base[2]= make_cons(base[11],base[2]);
  504.     V9= cdr((V9));
  505.     V10= car((V9));
  506.     goto T312;}
  507. T308:;
  508.     base[11]= cadr(base[0]);
  509.     base[12]= base[1];
  510.     base[4]= simple_symlispcall_no_event(VV[54],base+11,2);
  511.     {object V11;
  512.     base[11]= reverse(base[2]);
  513.     V11= car(base[11]);
  514. T339:;
  515.     if(!(endp(base[11]))){
  516.     goto T340;}
  517.     goto T335;
  518. T340:;
  519.     (VV[37]->s.s_dbind)= make_cons((V11),(VV[37]->s.s_dbind));
  520.     base[11]= cdr(base[11]);
  521.     V11= car(base[11]);
  522.     goto T339;}
  523. T335:;
  524.     base[11]= base[3];
  525.     base[12]= base[7];
  526.     base[13]= base[6];
  527.     (void)simple_symlispcall_no_event(VV[65],base+11,3);
  528.     base[11]= base[9];
  529.     base[12]= base[8];
  530.     base[8]= simple_symlispcall_no_event(VV[66],base+11,2);
  531.     base[11]= base[1];
  532.     base[12]= cadr(base[8]);
  533.     (void)simple_symlispcall_no_event(VV[67],base+11,2);
  534.     structure_set(base[1],VV[33],2,structure_ref(cadr(base[8]),VV[33],2));
  535.     {object V12;
  536.     object V13;
  537.     V12= base[2];
  538.     V13= car((V12));
  539. T367:;
  540.     if(!(endp((V12)))){
  541.     goto T368;}
  542.     goto T363;
  543. T368:;
  544.     base[11]= (V13);
  545.     (void)simple_symlispcall_no_event(VV[68],base+11,1);
  546.     V12= cdr((V12));
  547.     V13= car((V12));
  548.     goto T367;}
  549. T363:;
  550.     base[11]= reverse(base[2]);
  551.     base[12]= list(5,VV[15],base[1],base[11],base[4],base[8]);
  552.     vs_top=(vs_base=base+12)+1;
  553.     bds_unwind1;
  554.     return;
  555. }
  556. /*    function definition for C2MULTIPLE-VALUE-BIND    */
  557.  
  558. static L20()
  559. {    register object *base=vs_base;
  560.     register object *sup=base+VM12;
  561.     vs_reserve(VM12);
  562.     bds_check;
  563.     check_arg(3);
  564.     vs_top=sup;
  565. TTL:;
  566.     {object V14;
  567.     V14= Cnil;
  568.     base[3]= Cnil;
  569.     bds_bind(VV[38],symbol_value(VV[38]));
  570.     bds_bind(VV[20],symbol_value(VV[20]));
  571.     bds_bind(VV[39],symbol_value(VV[39]));
  572.     bds_bind(VV[40],symbol_value(VV[40]));
  573.     {object V15;
  574.     object V16;
  575.     V15= base[0];
  576.     V16= car((V15));
  577. T384:;
  578.     if(!(endp((V15)))){
  579.     goto T385;}
  580.     goto T380;
  581. T385:;
  582.     {object V17;
  583.     base[8]= (V16);
  584.     V17= simple_symlispcall_no_event(VV[69],base+8,1);
  585.     if(((V17))==Cnil){
  586.     goto T393;}
  587.     setq(VV[24],number_plus(symbol_value(VV[24]),VV[18]));
  588.     base[8]= symbol_value(VV[24]);
  589.     structure_set((V16),VV[36],1,(V17));
  590.     structure_set((V16),VV[36],4,base[8]);
  591.     princ_str("\n    ",VV[25]);
  592.     if(((V14))!=Cnil){
  593.     goto T400;}
  594.     princ_char(123,VV[25]);
  595.     V14= Ct;
  596. T400:;
  597.     base[9]=symbol_function(VV[51]);
  598.     base[11]= (V17);
  599.     base[10]= simple_symlispcall_no_event(VV[70],base+11,1);
  600.     (void)simple_lispcall_no_event(base+9,1);
  601.     princ_char(86,VV[25]);
  602.     base[9]= base[8];
  603.     (void)simple_symlispcall_no_event(VV[51],base+9,1);
  604.     princ_char(59,VV[25]);
  605.     goto T389;
  606. T393:;
  607.     base[8]= simple_symlispcall_no_event(VV[56],base+9,0);
  608.     structure_set((V16),VV[36],2,base[8]);}
  609. T389:;
  610.     V15= cdr((V15));
  611.     V16= car((V15));
  612.     goto T384;}
  613. T380:;
  614.     bds_bind(VV[21],VV[22]);
  615.     base[9]= base[1];
  616.     base[10]= simple_symlispcall_no_event(VV[49],base+9,1);
  617.     bds_unwind1;
  618.     bds_bind(VV[39],(VV[39]->s.s_dbind));
  619.     bds_bind(VV[38],(VV[38]->s.s_dbind));
  620.     bds_bind(VV[40],(VV[40]->s.s_dbind));
  621.     {object V18;
  622.     V18= base[0];
  623. T424:;
  624.     if(!(endp((V18)))){
  625.     goto T425;}
  626.     bds_unwind1;
  627.     bds_unwind1;
  628.     bds_unwind1;
  629.     goto T421;
  630. T425:;
  631.     setq(VV[41],number_plus(symbol_value(VV[41]),VV[18]));
  632.     base[11]= make_cons(symbol_value(VV[41]),Cnil);
  633.     base[3]= make_cons(base[11],base[3]);
  634.     princ_str("\n    if(vs_base>=vs_top){",VV[25]);
  635.     (void)simple_symlispcall_no_event(VV[61],base+11,0);
  636.     if(type_of(car(base[3]))!=t_cons)FEwrong_type_argument(Scons,car(base[3]));
  637.     (car(base[3]))->c.c_cdr = Ct;
  638.     princ_str("goto T",VV[25]);
  639.     base[11]= car(car(base[3]));
  640.     (void)simple_symlispcall_no_event(VV[51],base+11,1);
  641.     princ_char(59,VV[25]);
  642.     princ_char(125,VV[25]);
  643.     base[11]= car((V18));
  644.     base[12]= VV[42];
  645.     (void)simple_symlispcall_no_event(VV[71],base+11,2);
  646.     if(endp(cdr((V18)))){
  647.     goto T446;}
  648.     princ_str("\n    vs_base++;",VV[25]);
  649. T446:;
  650.     V18= cdr((V18));
  651.     goto T424;}
  652. T421:;
  653.     princ_str("\n    ",VV[25]);
  654.     (void)simple_symlispcall_no_event(VV[61],base+8,0);
  655.     setq(VV[41],number_plus(symbol_value(VV[41]),VV[18]));
  656.     base[8]= make_cons(symbol_value(VV[41]),Cnil);
  657.     princ_str("\n    ",VV[25]);
  658.     if(type_of(base[8])!=t_cons)FEwrong_type_argument(Scons,base[8]);
  659.     (base[8])->c.c_cdr = Ct;
  660.     princ_str("goto T",VV[25]);
  661.     base[9]= car(base[8]);
  662.     (void)simple_symlispcall_no_event(VV[51],base+9,1);
  663.     princ_char(59,VV[25]);
  664.     base[3]= reverse(base[3]);
  665.     {object V19;
  666.     object V20;
  667.     V19= base[0];
  668.     V20= car((V19));
  669. T471:;
  670.     if(!(endp((V19)))){
  671.     goto T472;}
  672.     goto T467;
  673. T472:;
  674.     if((cdr(car(base[3])))==Cnil){
  675.     goto T476;}
  676.     princ_str("\nT",VV[25]);
  677.     base[9]= car(car(base[3]));
  678.     (void)simple_symlispcall_no_event(VV[51],base+9,1);
  679.     princ_str(":;",VV[25]);
  680. T476:;
  681.     base[9]= car(base[3]);
  682.     base[3]= cdr(base[3]);
  683.     base[9]= (V20);
  684.     base[10]= Cnil;
  685.     (void)simple_symlispcall_no_event(VV[71],base+9,2);
  686.     V19= cdr((V19));
  687.     V20= car((V19));
  688.     goto T471;}
  689. T467:;
  690.     if((cdr(base[8]))==Cnil){
  691.     goto T455;}
  692.     princ_str("\nT",VV[25]);
  693.     base[9]= car(base[8]);
  694.     (void)simple_symlispcall_no_event(VV[51],base+9,1);
  695.     princ_str(":;",VV[25]);
  696. T455:;
  697.     base[8]= base[2];
  698.     (void)simple_symlispcall_no_event(VV[72],base+8,1);
  699.     if(((V14))==Cnil){
  700.     goto T504;}
  701.     princ_char(125,VV[25]);
  702.     base[8]= Cnil;
  703.     vs_top=(vs_base=base+8)+1;
  704.     bds_unwind1;
  705.     bds_unwind1;
  706.     bds_unwind1;
  707.     bds_unwind1;
  708.     return;
  709. T504:;
  710.     base[8]= Cnil;
  711.     vs_top=(vs_base=base+8)+1;
  712.     bds_unwind1;
  713.     bds_unwind1;
  714.     bds_unwind1;
  715.     bds_unwind1;
  716.     return;}
  717. }
  718.